<?php
abstract class Agitum_Sms_Gate_Abstract 
{
	protected $_login;
	protected $_pass;
	
	protected $_sender;
	protected $_template;
	
	protected $_debug;
	
	public function __construct($opt) 
	{	
		$this->_debug = $this->param($opt, 'debug', 0);
		$this->_login = $this->param($opt, 'login', null);
		$this->_pass = $this->param($opt, 'password', null);
		$this->_sender = $this->param($opt, 'sender', '');	
	}
	
	protected function param($opt, $key, $def) {
		return isset($opt[$key]) ? $opt[$key] : $def;
	}
	
	abstract public function send($param = array());
	abstract public function cost($param = array());
	abstract public function status($param = array());
	abstract public function balance();
}